/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package chameleon.model;

import chameleon.model.game.Game;
import chameleon.view.OutputManager;
import chameleon.view.input.Input;
import java.io.File;

/**
 * This class represent a manager to a game solver.
 *
 *
 * @author simon
 */
abstract public class AbstractManager {

    protected Input input_;
    protected int toolName_;
    protected Game game_;
    protected OutputManager outputManager_;

    protected AbstractManager(Input input, int toolName){
        input_ = input;
        toolName_ = toolName;
        outputManager_ = new OutputManager();
    }


    public abstract void createGame();
    public abstract void solveGame();
    public abstract File getResult();
    public abstract void buildGame();
    public abstract void quitCmd();
    public abstract void printStrategy(String file);

    public int getToolName(){
        return toolName_;
    }
    
    public Game getGame(){
        return game_;
    }

    public boolean strategyExists(){
        return (game_.getStrategy()!=null);
    }
}
